<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport"
          content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>PHP数组</title></head>
<body>
<?php
/*
 * 数组：是一个能在单个变量中储存多个值的特殊变量
 * 如果你有一个项目清单（例如：车的名字），将变量储存到单个变量中
 |*/
$cars1 = "Volvo";
$cars2 = "BMN";
$cars3 = "Toyota";
/*
 * 这种定义变量是针对小数据，当数据有成千上百条是就需要数组
 * 语法：array()
 * PHP中有三种类型的数组
 * 数值数组：带有数字ID键的数组
 * 关联数组：带有指定的键数组，每个键关联一个值
 * 多维数组：包含一个或者多个数组
 *
 * */
/*
 * 数值数组：
 * 这里有两个创建数值数组的方法：
 * 自动分配ID键（ID键总是从0开始的）
 * 语法：
 * 自动分配索隐值：
 * $cars=array("Volvo","BWM","Toyota")
 * 手动分配索引值：
 * $cars[0]="Volvo";
 * $cars[1]="BMW";
 * $cars[2]="Toyota";*/
$cars = array("苹果", "栗子", "栗子");
echo "我喜欢" . $cars[0] . $cars[1] . "和" . $cars[2];
echo "<br/>";
//获取数组的长度
echo count($cars);
echo "<br/>";

//遍历数值数组
//遍历并打印数组的数组值
$arrlength = count($cars);
for ($x = 0; $x < $arrlength; $x++) {
    echo "$cars[$x]";
    echo "<br/>";
}
/*
 * 关联数组：使用分配给数组的指定的键的数组
 * 比如：$age = array("perter"=>"35","Ben"=>"37");
 * 或者：
 * $age['perter']= "35";
 * $age['Ben']="37";
 * $age=['Jon']="43";
 *
 * */
$age = array("perter" => "35", "Ben" => "37", "join" => "43");
//关联数组循环
/*
 * foreach (array_expression as $value)
 * statement
 * foreach (array_expression as $key => $value)
 * statement
 * 第一格式遍历给定array_expression数组。每次循环中，当前单元的值被赋给$value并且数组内部的指针向前移步（因此下一次循环中将会得到下一个单元）。
 * 第二种格式做同样的事，只除了当前单元的键名也会在每次循环中被赋值给变量$key
 */
echo "$age[perter]";
echo "<br>";
foreach ($age as $x => $x_value) {
    echo "key =", $x . ",Value=" . $x_value;
    echo "<br>";
}
//多维数组
/*
 * 多维数组是包含一个或者多个数组的数组
 * 在多维数组中，主数组中的每一个元素也可以是一个数组，子数组中的每一个元素也可以是一个数组
 * */
$ARY = array(
    "aaa" => array(
        "aryOne_1",
        "aryOne_2",
        "aryOne_3"
    ),
    "bbb" => array(
        "aryTwo_1",
        "aryTwo_2",
        "aryTwo_3",
    ),
    "ccc" => array(
        "aryThree_1",
        "aryThree_2",
        "aryThree_3",
    )
);
echo $ARY['ccc'][0];
echo "<br/>";
echo $ARY['aaa'][2];
//一维数组的键值不加单引号，因为它只有一个值
//数组还要搭配array()函数使用，有很多坑
?>
</body>
</html>